// 客服页面
import {checkLogin} from "../../libs/login";
import {goToPage, PAGE_LOGIN} from "../../config/pages";
import {feedBackPost} from "../../api/kefu.js";
import { CUSTOMER_SERVICE_PHONE } from "../../config/app.js";

Page({
  data: {
    // 初始化完成标志
    initialized: false,
    // 留言表单数据
    msgName: '', // 昵称
    msgPhone: '', // 联系电话
    msgContent: '', // 留言内容
  },

  async onLoad() {
    console.log('客服页面加载');
    await this.checkLoginStatus();
  },

  onShow() {
    // 更新TabBar选中状态
    if (typeof this.getTabBar === 'function' && this.getTabBar()) {
      this.getTabBar().setData({
        selected: 3
      });
    }
  },

  // 检查登录状态
  async checkLoginStatus() {
    if (!checkLogin()) {
      // 未登录，跳转到登录页面
      goToPage(PAGE_LOGIN, {}, 'reLaunch');
      return;
    }
    
    // 登录检查完成，设置初始化标志
    this.setData({ initialized: true });
  },

  // 昵称输入变化
  onNameChange(e: any) {
    this.setData({
      msgName: e.detail.value
    });
  },

  // 电话输入变化
  onPhoneChange(e: any) {
    this.setData({
      msgPhone: e.detail.value
    });
  },

  // 留言内容输入变化
  onContentChange(e: any) {
    this.setData({
      msgContent: e.detail.value
    });
  },

  // 提交留言
  async submitMessage() {
    const {msgName, msgPhone, msgContent} = this.data;

    // 验证留言内容（必填）
    if (!msgContent || msgContent.trim() === '') {
      wx.showToast({
        title: '请输入留言内容',
        icon: 'none',
        duration: 2000
      });
      return;
    }

    // 验证电话格式（如果填写了电话）
    if (msgPhone && !/^1[3-9]\d{9}$/.test(msgPhone)) {
      wx.showToast({
        title: '请输入正确的手机号码',
        icon: 'none',
        duration: 2000
      });
      return;
    }

    // 显示加载提示
    wx.showLoading({
      title: '提交中...',
      mask: true
    });

    try {
      // 调用反馈接口
      const params = {
        rela_name: msgName || '匿名用户', // 如果未填写昵称，使用默认值
        phone: msgPhone || '',
        content: msgContent
      };

      // @ts-ignore
      await feedBackPost(params);
      
      wx.hideLoading();

      // 提交成功
      wx.showToast({
        title: '留言已提交',
        icon: 'success',
        duration: 2000
      });

      // 清空表单
      this.setData({
        msgName: '',
        msgPhone: '',
        msgContent: ''
      });

    } catch (error: any) {
      wx.hideLoading();
      console.error('提交留言失败:', error);
      wx.showToast({
        title: error?.msg || '提交失败，请稍后重试',
        icon: 'none',
        duration: 2000
      });
    }
  },

  // 导航到我的留言页面
  navigateToMyMessages() {
    try {
      goToPage('/pages/user/my-messages/my-messages');
    } catch (err) {
      console.error('跳转失败:', err);
      wx.showToast({
        title: '跳转失败',
        icon: 'none'
      });
    }
  },

  // 拨打客服电话
  makeCall() {
    wx.makePhoneCall({
      phoneNumber: CUSTOMER_SERVICE_PHONE,
      success: () => {
        console.log('拨打电话成功');
      },
      fail: (err) => {
        console.error('拨打电话失败:', err);
        wx.showToast({
          title: '拨打失败',
          icon: 'none'
        });
      }
    });
  }
});
